Media devices, such as a set top box, a stereo, a television, a computer system, a game system, or other electronic media device may be configured to receive a broadcast of media content that has a video portion which is presented on a display to a viewing user of the media device. Typically, the broadcast media content comprises a series of media content events. A media content event often presents theme-based visual and audio content to a user for their enjoyment and/or for informative purposes. Examples of such theme-based content includes movies, films, serial programming, sporting events, documentaries, newscasts, religious programs, commercials (typically of short duration with advertising content), or the like. Serial programming may present a continuing plot and/or theme, often with the same cast of actors, in a sequential episode-by-episode basis that is available periodically. Advertisements, commercials or the like may be interspersed within the media content event.
The video portion of a media content event is presented as a sequential series of still images, interchangeably referred to herein as video frames. Each video frame of a media content event is presented for a brief duration, then the next video frame is presented, thus creating the perception of a moving image by the viewing user. Depending upon the media device and the components of the associated media content presentation system (the display and speakers), as many as sixteen, thirty, or even a higher number of video frames per second are presented to the viewing user in an example media presentation system (though any suitable presentation rate of the video frames may be used). This stream of serially presented video frames is interchangeably referred to as a stream of video content.
The audio portion of the media content event is also processed into a stream of audio content for presentation as sound to the user. The audio content is presented in synchronism with presentation of the streaming video content. For example, the viewer may see actors performing on the display (the presented streaming video portion of the media content event) while hearing the audio track (the presented audio portion of the media content event). The synchronously presented audio track may include dialogue (the actor's speech), music, or other background sound effects.
The media device may receive the media content, provided by a media content provider, from a variety of sources. An example source of media content is provided to the media device via a broadcast-based media content distribution system to which the media device is communicatively coupled to. Example of broadcast-based media content distribution system include a satellite system, an over-the-air system, or a cable system. Any suitable media content distribution system may provide broadcasted media content to the media device.
Typically, many different media devices are also coupled to the broadcast-based media content distribution system. The media content provider broadcasts the media content over the media content distribution system as a stream of media content using a suitable broadcast format. One non-limiting example media content broadcasting format is the moving picture experts group (MPEG) format that enables compression and transmission of a stream of media content. Other media content transmission formats may be used to broadcast a stream of content to the receiving media devices.
Typically, the media content provider is concurrently broadcasting many different media content events to the plurality of media devices. Each media device, based on a specification made by its user, selects a particular one of the many different broadcasting media content events. The selected media content event is then presented to the user of that media device. Alternatively, or additionally, the selected media content event may be saved (recorded) in a memory medium for future presentation.
Based on the user specification, the media device “tunes” itself to receive the user-selected broadcasting media content event. Here, tuning is the process of selecting a particular media content stream from a plurality of different detectable media content streams, and processing the selected media content stream to access the user-selected media content stream. As the stream of broadcasting media content is being received at the media device, the media device processes the user-selected media content stream from the received broadcasting format into a format that is suitable for presentation by the components of the media content presentation system. That is, the received broadcasting stream of media content is processed into the series of serially presented video frames (and associated audio content).
To facilitate the timing of presentation of the series of serially presented video frames (and the associated audio content), some current portion of the processed media content is temporarily stored in a content buffer. After some amount of the received broadcasting stream of media content has been processed (into video frames and the associated audio content) and stored in the content buffer, the buffered portion of the processed media content event begins to be streamed out to the components of the media content presentation system (the display and the speakers). That is, some predefined number and/or presentation duration of video frames (and the associated audio content) are stacked up into the content buffer so that the output of the video frames (and the associated audio content) from the content buffer can be managed such that a continuous stream of correctly timed video frames (and the associated audio content) are provided to the components of the media content presentation system. This storing of video frames (and the associated audio content) into the content buffer is interchangeably referred to herein as “buffering” of the media content.
On occasion, discontinuities or interruptions may occur during the reception of the broadcasting media content event over the media content distribution system. Additionally, or alternatively, the data in a stream of broadcasting media content may be received at different rates at different times over the media content distribution system. Further, processing time for generating individual video frames may vary because of the particular media content compression format being used to transmit the broadcasting media content, such as but not limited to the processing of I-frames (intra coded frame or slice), P-frames (predicted frame of slice) or B-frames (bi-directional predicted frame or slice), that are compressible to different degrees in an MPEG stream. Thus, the use of the content buffer permits the presentation of a continuous stream of correctly timed video frames (and the associated audio content) out from the media device to the components of the media content presentation system, even when reception of the broadcasting media content varies.
A media device typically provides various presentation trick play functionality that permits the user to control the presentation of a media content event. The presentation trick play functions control the flow of the media content (the video frames and the associated audio content) out from the content buffer to the components of the media content presentation system (the display that presents the video frames and the speakers that synchronously present the audio content).
An example presentation trick play function is the “pause” function wherein presentation of the video portion of the media content event on the display is temporarily halted in response to a user request. During a pause operation initiated by the user, a single selected video frame may be presented on the display (thus showing a single still image). Presentation of the audio portion is also halted. Thus, the user views a single still image presented on the display, typically the last video frame output from the content buffer, and hears no audio content.
When the user ends the pause operation, presentation of the media content resumes. During a pause operation, the broadcasting media content is still being received by the media device. This continuing stream of received media content is being processed into video frames (and the associated audio content), and is being stored into the content buffer, during the pause operation. Thus, when presentation of the media content event resumes when the pause operation concludes, the portion of the media content event received during the pause operation is available for presentation since it has been stored in the content buffer.
Another presentation trick play function typically provided by a media device is a rewind function. During normal presentation of the media content event, the video frames (and the associated audio content) are sequentially and serially streamed out of the content buffer to the components of the media content presentation system. However, the output video frames (and the associated audio content) are not deleted, removed, or otherwise erased from the content buffer as they are streamed out for presentation on the display. Rather, the video frames (and the associated audio content) remain stored in the content buffer for at least some duration. When the user initiates a rewind operation, the flow of presentation of the video frames may be reversed such that the moving image perceived by the user is shown in a backward or reverse manner. That is, the previously presented video frames are accessed from the content buffer and are then presented sequentially in a reverse order. Audio content is typically halted during a rewind operation. The rewind operation may be performed at a normal speed (at the same rate of presentation that the video frames were initially presented), at a lower rate (slow motion reverse presentation), or at a higher rate (fast speed reverse presentation).
A rewind operation may continue up until the last buffered (stored) video frame has been presented or when the user terminates the rewind operation. When the rewind operation ends, either when there are no earlier received video frames available from the content buffer or when the user ends the rewind process, then presentation of the media content event may resume or may be paused at that point. Thus, the user may review previously presented portions of the media content event, at least to the extent that such media content remains stored in the content buffer.
Another presentation trick play function typically provided by a media device is a fast forward operation. Here, the presentation rate of the video frames is increased such that the user perceives a fast forward playing of the video content. The fast forward operation may be done by decreasing presentation time of individual video frames and/or by skipping over selected video frames (such that selected video frames are not presented). Typically, presentation of the audio content is halted during a fast forward operation.
Thus, the user may more quickly advance presentation of the media content. However, the extent of fast forward presentation is limited by the amount of video content that has been received, processed, and stored into the content buffer prior to the initiation of the fast forward operation. That is, fast forward presentation cannot be ahead of “live” presentation of the media content event (the time that the current portion of the media content event is being received at the media device via the broadcast-based media content distribution system).
Other presentation trick play functions may also be provided for management of media content presentation from the content buffer. Jump forward and jump backward operations may advance or replay presentation of the media content event by some predefined duration. However, such jump forward and jump backward operations are similarly limited by extent of the number of video frames (and the associated audio content) stored in the content buffer.
In many media devices, the content buffer of a media device has a relatively large memory storage capacity. Some media devices may have a content buffer that has sufficient memory storage capacity to store up to an hour of high definition media content. However, even with large capacity content buffers, several practical limitations remain.
For example, only a single media content event is buffered into the content buffer. Thus, if the user changes “channels” to a different media content event, the media device must re-tune itself to receive and process the newly selected media content event. The newly selected media content event is processed into video frames (and the associated audio content), and is then stored into the content buffer. Once a relatively small duration or number of video frames (and the associated audio content) of the newly selected media content event have been buffered into the content buffer, the streaming of the buffered video frames out to the components of the media content presentation system may begin. However, at this juncture, the forward play or reverse play type presentation trick play functions are not available for the newly selected media content event since there is no accumulated (buffered) video frames (and the associated audio content) in the content buffer for the newly selected media content event.
Further, once the media device has tuned to the newly selected media content event and begins saving those video frames into the content buffer, subsequently received portions of the previously presented media content event are not processed and saved into the content buffer. Accordingly, the various presentation trick play functions are not available for the later broadcast portions of the previously presented media content event since there is no accumulated (buffered) video frames (and the associated audio content) in the content buffer.
Also, media devices are often not configured to rewind back in time past the beginning of the newly selected media content event. Thus, the user is not able to later view previous or subsequent portions of the previously presented media content event that might remain buffered in the content buffer.
Accordingly, there is a need in the arts to improve management of the content buffer so that various presentation trick play functions are available to the user after the user specifies presentation of a new media content event.